extends Card

# 枯木守卡牌 - 效果类驱动版本
# 功能：当前回合免疫伤害，回合结束时移除免疫，透支消耗max_mana点能量

# 效果资源引用
@export var ward_effect_resource: WitheredWoodWardEffect

func get_default_tooltip() -> String:
	# 使用%操作符替换tooltip_text中的占位符
	# 默认情况下使用一个合理的默认值，实际值在get_updated_tooltip中动态获取
	return tooltip_text % 10  # 默认值10

func get_updated_tooltip(player_modifiers: ModifierHandler, _enemy_modifiers: ModifierHandler) -> String:
	# 动态获取max_mana值
	var max_mana = 10  # 默认值
	
	# 通过player_modifiers获取玩家信息
	if player_modifiers and player_modifiers.get_parent():
		var player = player_modifiers.get_parent()
		if player and player.stats:
			max_mana = player.stats.max_mana
			print("🌳 枯木守获取max_mana: %d" % max_mana)
	
	# 如果无法通过player_modifiers获取，尝试使用Card基类的静态方法
	if max_mana == 10 and player_modifiers:
		var tree = player_modifiers.get_tree()
		if tree:
			var player = Card.find_player(tree)
			if player and player.stats:
				max_mana = player.stats.max_mana
				print("🌳 枯木守通过静态方法获取max_mana: %d" % max_mana)
	
	# 使用%操作符替换占位符
	return tooltip_text % max_mana

func apply_effects(targets: Array[Node], modifiers: ModifierHandler) -> void:
	print("🌳 枯木守卡牌被使用！")
	
	# 使用效果资源处理所有逻辑
	for target in targets:
		if target is Player:
			print("🔍 检查效果资源: %s" % ("存在" if ward_effect_resource else "不存在"))
			
			if ward_effect_resource:
				# 使用配置的效果资源
				print("✅ 使用配置的效果资源")
				ward_effect_resource.execute([target])
			else:
				# 回退到直接创建效果
				print("⚠️ 回退到直接创建效果")
				var ward_effect = WitheredWoodWardEffect.new()
				ward_effect.execute([target])
			
			if sound:
				SFXPlayer.play(sound) 
